﻿using Feature.YiGuo.Framework.API;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System.Web.Http;

namespace WebApplication1
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务

            // Web API 路由
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                 name: "DefaultApi1",
                 routeTemplate: "{system}/{module}/{method}/{versions}",
                 defaults: new { controller = "Gateway", action = "Execute", versions = RouteParameter.Optional }
             );

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "{controller}/{action}"
            );

            //初始化扩展属性
            //config.Initialize();
            Initialize(config);
            config.Filters.Add(new ApiGateway.Filters.SignValidationAttribute());
        }

        public static void Initialize( HttpConfiguration config)
        {
           // config.Filters.Add(new ActionLogAttribute());
           // config.Filters.Add(new ArgumentValidationAttribute());
            //config.Filters.Add(new CustomizedExceptionAttribute());

            var formatters = GlobalConfiguration.Configuration.Formatters;
            var jsonFormatter = formatters.JsonFormatter;
            var settings = jsonFormatter.SerializerSettings;
            settings.DateFormatString = "yyyy/MM/dd HH:mm:ss";
            settings.Formatting = Formatting.Indented;
            settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        }
    }
}
